// for(var i=0;i<5;i++){
//     setTimeout(function(){
//         console.log(new Date,i);
//     },1000)
// }
// console.log(new Date,i);  //5

//先执行 console.log(new Date,i);  输出5
// 然后循环内 同一时间会打印5个5

// 当时面试官问我  我是回答了每隔1秒打印一个5，回答错了；因为是先循环完后i就为5了，然后在setTimeout过1秒后执行function内的console.log打印了5

// 然后改进成 输出 5 =》 0，1，2，3，4
// for(var i=0;i<5;i++){
//     setTimeout((
//         function(){
//             console.log(new Date,i); //0 1 2 3 4
//         }
//     )(i),1000)
// }
// console.log(new Date,i);  //5
/**
  得到的输出结果：
  Wed Jun 24 2020 16:03:22 GMT+0800 (中国标准时间) 0
  Wed Jun 24 2020 16:03:22 GMT+0800 (中国标准时间) 1
  Wed Jun 24 2020 16:03:22 GMT+0800 (中国标准时间) 2
  Wed Jun 24 2020 16:03:22 GMT+0800 (中国标准时间) 3
  Wed Jun 24 2020 16:03:22 GMT+0800 (中国标准时间) 4
  Wed Jun 24 2020 16:03:22 GMT+0800 (中国标准时间) 5
*/ 

// 第二题的改进又错了
// for(var i=0;i<5;i++){
//    function foo(i){
//     setTimeout(
//         function(){
//             console.log(new Date,i); //0 1 2 3 4
//         }
//     ,1000)  
//    }
//    foo(i)
// }
// console.log(new Date,i);  //5
// 输出结果为先打印 5 =》 0，1，2，3，4  成功；当时还觉得胸有成竹的，现在觉得有点可笑

var i=5
  setTimeout(
    function(){
        console.log(new Date,i); 
    }
  ,1000)  
  setTimeout(
    function(){
        console.log(new Date,i); 
    }
  ,1000)
  setTimeout(
    function(){
        console.log(new Date,i);
    }
  ,1000)
  setTimeout(
    function(){
        console.log(new Date,i);
    }
  ,1000)
  setTimeout(
    function(){
        console.log(new Date,i); 
    }
  ,1000)

console.log(new Date,i);  //5

/*打印结果
Wed Jun 24 2020 17:35:03 GMT+0800 (中国标准时间) 5    73行
2020.6.24面试题.js:49 Wed Jun 24 2020 17:35:04 GMT+0800 (中国标准时间) 5
2020.6.24面试题.js:54 Wed Jun 24 2020 17:35:04 GMT+0800 (中国标准时间) 5
2020.6.24面试题.js:59 Wed Jun 24 2020 17:35:04 GMT+0800 (中国标准时间) 5
2020.6.24面试题.js:64 Wed Jun 24 2020 17:35:04 GMT+0800 (中国标准时间) 5
2020.6.24面试题.js:69 Wed Jun 24 2020 17:35:04 GMT+0800 (中国标准时间) 5
要注意：执行顺序为：
for执行 console.log
setTimeout
setTimeout
setTimeout
setTimeout
setTimeout
同步的异步执行过程

*/ 